The invention relates to designing controls for appliances, machines, machine tools, and other devices.
Typically, development of a new product, such as an appliance, starts with the manufacturer writing a system requirements specification. This specification is sent to various engineering firms with a request for proposal. Each engineering firm provides a proposal and cost estimate to the manufacturer. The manufacturer evaluates the proposals and selects a short list of engineering firms. The manufacturer then asks these firms to submit firm quotes for the new product based on their proposals.
Finally, the manufacturer reviews all firm quotes and selects one engineering firm to produce the new product. This is a long and laborious process that usually takes three to nine months with only one tangible result: a firm proposal for development of a new product.
The next step in the process is for the manufacturer and the selected engineering firm to develop a detailed design specification for the new product. This development usually takes three to six months.
The final step in the process is to produce a prototype system based on the detailed design specification. Once the prototype is complete, the new system is extensively tested by the engineering firm and by the manufacturer. After all regression and acceptance testing is complete, the system is tested for certification to ensure it meets all applicable government requirements for safety and operation. The new product goes into production once testing is complete.
A system for the design of control systems for appliances, machines, machine tools, and the like improves a user""s ability to develop a processor-based control system by reducing development cycles and eliminating or reducing the need for a formal customer requirement specification. The system is intended to reduce time to market, eliminate excess requirements cycles, lower system development costs, and improve overall product quality. Improvements in the product development cycle may be attained through the use of a computer-based virtual prototype tool, a state machine engine, standard embedded control code, a standard hardware platform, and real-time testing on actual appliance hardware for verification of the embedded control system.
In one general aspect, a control system for a device, such as an appliance, is generated by storing software representations of pre-existing control panel components and control processes on a computer and using the computer to develop a control panel and control software for the device by selecting and placing software representations of pre-existing control panel objects in a software representation of the control panel, selecting software representations of pre-existing control processes, and associating the selected control processes with the selected control panel objects. The control software then is downloaded from the computer to control hardware to be included in the device, and the device is tested using the control software running on the control hardware and under the control of the computer.
Embodiments may include one or more of the following features. For example, a virtual control panel generated at the computer may embody the control panel designed for the device. A user may manipulate the virtual control panel to generate virtual control inputs that then are transmitted to the control hardware to control the control hardware. The virtual control inputs may be transmitted using a communications protocol. The inputs may be transferred, for example, over a pair of wires, or through use of infrared or radio frequency transmission channels, and using any standard communications protocol.
When the control hardware includes a standard hardware control module for implementing the control software and having a communications interface, the standard hardware control module may be connected to the computer through the communications interface and to active components of the device prior to transmission. After the device is tested, copies of the standard hardware control module may be included in production versions of the device. The standard hardware control module may be selected from a set of predefined standard hardware control modules. Each standard hardware control module may be capable of running standard software and may have different performance characteristics, and selection of a standard hardware control module may be based on performance characteristics required by the control panel and the control software. Selection may be done automatically by the computer.
Software representations of active device components also may be stored on the computer. In this case, using the computer to develop the control panel and the control software for the device may include selecting one or more representations of active device components and associating the selected active device components with one or more selected control processes or selected control panel objects.
A standard control process may include, for example, a list of sequential control steps, a state machine, or a set of interrupts.
Using the computer to develop a control panel and control software for the device may include using graphical techniques to display the software representation of the control panel and to select and place software representations of the control panel components on the displayed software representation of the control panel. The software representations of control panel components may be displayed as icons, and a selected icon may be displayed as a three-dimensional representation of a corresponding control panel component.
The graphical techniques may involve use of a graphical drawing tool. The graphical drawing tool also may display icons representing the pre-existing control processes.
A computer-controlled modelling system may be used to generate a three-dimensional model of the control panel.
The control hardware may include standard control software. Downloading the control software from the computer to the control hardware may include adding one or more modules to the standard control software, or replacing one or more modules of that software.
The control software may be generated without generating a control panel. Such an approach may find use, for example, when it is desired to add functionality to a device or modify operation of the device without modifying the control panel of the device.
The control software also may be generated prior to generating a control panel. In this case, the computer may automatically generate a list of control panel components needed for a control panel of the device based on requirements of the control software.
The control panel also may be generated without also generating new control software. This may be useful, for example, when it is desired to provide a new control panel design without modifying the underlying functionality of a device.
In another general aspect, a design specification for a control panel for a device is generated. First, a computer is used to graphically generate a control panel for a device. Thereafter, the computer is used to automatically generate the design specification from the control panel. Using the computer to graphically generate the control panel for the device may include using one or more standard objects. A standard object may include a graphical representation of a physical embodiment of the object and a logical representation of operation of the object. Embodiments may include one or more of the features noted above.
In another general aspect a control system for a device may be designed by providing a collection of standard hardware control modules, each of which is capable of running standard software and has different performance characteristics. A computer may be used to develop a control panel and control software for the device, and one or more of the standard hardware control modules to be included in the device may be selected based on performance characteristics required by the control panel and control software. Thus, the hardware to be included is selected after the control software is generated so that optimal hardware for the software may be provided. Embodiments may include one or more of the features noted above.
The systems and techniques may be used to develop appliance control systems and will be described using that product as a reference. Appliances may include, for example, blenders, coffee makers, clock radios, clothes dryers, dish washers, food processors, microwave ovens, mixers, ovens, ranges, refrigerators, stereo equipment, televisions, video cassette or digital video disc recorders, and washing machines. It also should be understood that this invention can be used for development of any type of microprocessor-based control system.
The known product development process in the prior art takes from six to eighteen months and averages about twelve months. The intention of this invention is to reduce the new product development cycle from its current average of twelve months to less than six months. This will be accomplished by eliminating the need for a system requirements specification and a detailed design specification, or at least simplifying the creation of these specifications, and through re-use of pre-existing, pre-tested software components.
The techniques may be implemented in computer hardware or software, or a combination of the two. However, the techniques are not limited to any particular hardware or software configuration; they may find applicability in any computing or processing environment that may be used for control system design. Preferably, the techniques are implemented in computer programs executing on programmable computers that each include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and one or more output devices. Program code is applied to data entered using the input device to perform the functions described and to generate output information. The output information is applied to the one or more output devices.
Each program is preferably implemented in a high level procedural or object oriented programming language to communicate with a computer system. However, the programs can be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language.
Each such computer program is preferably stored on a storage medium or device (e.g., CD-ROM, EEPROM, hard disk or magnetic diskette) that is readable by a general or special purpose programmable computer or controller for configuring and operating the computer or controller when the storage medium or device is read by the computer or controller to perform the procedures described in this document. The system may also be considered to be implemented as a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner.